The present invention relates in general to wireless networking systems and in particular to enhanced techniques for handling aggregated frames in a wireless networking system to improve throughput in the presence of bit errors.
Wireless networks continue to grow in popularity, and various standards for wireless networks (e.g., the IEEE 802.11 family of standards, which now includes 802.11a, 802.11b, 802.11c, 802.11g) are available. Such standards facilitate network setup and interoperability of devices made by different manufacturers. As use of these networks increases, the demand for bandwidth increases, and protocols are continually evolving to meet this demand.
The bandwidth required for or used by a particular network depends on the amount of data to be transferred via the network and the overhead associated with transferring that data. Overhead comes from various sources, including addressing and error-checking information, control information, as well as retransmission of corrupted information (i.e., information that the receiver was unable to interpret or rely on due to detected bit errors). As overhead increases, throughput of data decreases, making the network less efficient.
One approach to increasing data throughput is to increase the bit rate in the data streams being transmitted. Increasing the bit rate, however, can result in little or no increase in throughput. This is because, to the extent that increasing the bit rate also increases the bit error rate, an increasing fraction of the available bandwidth must be used to retransmit corrupted information.
An alternative approach is to improve the protocol efficiency, so that more of the available bandwidth can be used for data transmission rather than overhead associated with the protocol. One approach that is under consideration for future IEEE 802.11 standards is aggregation of data frames at the medium access (MAC) layer.
As is generally, known, existing 802.11 standards specify that data to be transmitted is organized into frames referred to as MAC protocol data units (MPDUs). Each MPDU includes a header with address and control information, a body containing the data to be transmitted, and a frame check sequence (FCS) field that includes a checksum, which the receiver can use to detect bit errors in the frame. When errors are detected, the receiver can request retransmission of the MPDU. The MPDU header size is fixed, but the amount of data in an MPDU (and therefore the length of the MPDU) can vary, up to a maximum specified in the standard.
When the physical (PHY) layer transmits individual MPDUs, it adds additional overhead bits to each MPDU. One way to reduce this overhead is to aggregate multiple MPDUs into a single unit, referred to as a PHY layer service data unit (PSDU). Since MPDUs generally do not have a uniform length, it is necessary to include delimiters that the receiver can use to identify the beginning and end of each MPDU. As long as the delimiters are sufficiently short, the overhead introduced by delimiters is less than the overhead associated with transmitting each MPDU separately.
FIG. 1 illustrates a PSDU 100 that transfers aggregated MPDUs 102. (Herein, multiple instances of like objects are identified by like reference numerals, with parenthetical instance identifiers used where appropriate). As shown explicitly for MPDU 102(2), each MPDU 102 includes a header 104, a data-containing payload 106, and an FCS field 108. Each MPDU 102 is preceded by a corresponding MPDU delimiter 110. As shown explicitly for delimiter 110(1), each delimiter includes a length field 112, a cyclic redundancy check (CRC) field 114, and a synchronization (SYNC) field 116. Length field 112 holds a value specifying the length of the following MPDU 102. CRC field 114 holds a value usable for detecting errors in the transmission of length field 112, e.g., using a conventional checksum operation. SYNC field 116 is used to indicate the beginning of an MPDU, providing some capability for the receiver to recover from errors. While three MPDUs 110 are shown, it is to be understood that a PSDU might include any number of MPDUs and that different PSDUs may include different numbers of MPDUs.
When the receiver detects MPDU delimiter 110(1), it extracts the length information from length field 112 and validates the length information using CRC field 114, e.g., by performing a checksum operation. Assuming the length is valid, the receiver can extract the bits of the data stream that belong to the corresponding MPDU 112(1) for processing. It can then identify the start of the next delimiter 110(2) and repeat the process to extract the next MPDU 112(2), and so on.
If, however, the length validation for a delimiter, e.g., delimiter 110(1), fails, the receiver does not know the length of MPDU 112(1) and will not be able to find the start of the next delimiter 110(2). The receiver might then have to discard all the rest of PSDU 110, requiring retransmission of potentially many MPDUs.
In some instances, synchronization (SYNC) field 116 can be used by the receiver to detect the start of an MPDU 102 in cases where the length field in a previous MPDU delimiter was corrupted. For instance, suppose that length validation fails for delimiter 110(1), so the receiver does not have reliable length information for MPDU 102(1). If the receiver can detect the SYNC field 116 of delimiter 110(2), the receiver would still be able to identify the starting point of MPDU 102(2). By backtracking into the rest of delimiter 110(2), the receiver would be able to determine the length of MPDU 102(2). Thus, the rest of PSDU 100 might be recoverable. If, however, the SYNC field 116 is corrupted, the receiver would not detect the start of MPDU 102(2) and would not be able to recover the rest of the data.
When the receiver cannot locate an MPDU and cannot recover from the error, the lost MPDU and any subsequent MPDU (or in some instances the entire PSDU) must be retransmitted. Retransmission adds overhead, reducing the throughput of the network assuming that the available bandwidth remains fixed. The SYNC field provides some protection, but as noted above, a corrupt SYNC field can cause the receiver to discard most or all of a PSDU.
Therefore, it would be desirable to have aggregation techniques that would allow a higher probability of recovery of at least some of the information following a corrupted MPDU delimiter.